/**
 * @author ChaP
 * @date 2019/05/23
 * @describe:
 */
package CodingTest.AC20190522;

/**leetcode - 453
 * 给定一个长度为 n 的非空整数数组，找到让数组所有元素相等的最小移动次数。每次移动可以使 n - 1 个元素增加 1。

 示例:

 输入:
 [1,2,3]

 输出:
 3

 解释:
 只需要3次移动（注意每次移动会增加两个元素的值）：

 [1,2,3]  =>  [2,3,3]  =>  [3,4,3]  =>  [4,4,4]
 */

//思路：n-1增加1及等于除外的那个数-1
public class minMoves {
    public int minMoves(int[] nums){
        if(nums.length == 0) return 0;
        int count = 0;
        int min = Integer.MAX_VALUE;
        for(int i =0;i<nums.length;i++){
            min = Math.min(min,nums[i]);
        }
        for(int j = 0;j<nums.length;j++){
            count += nums[j]-min;
        }
        return count;
    }
}
